<?php

/**
 * Actividad. Controlador que realiza las acciones correspondientes a lo
 * que se refiere a la actividad.
 * 
 * @author Krysler Pinto
 */
if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Actividad extends CI_Controller {
//constructor
    public function __construct() {
        parent::__construct();
        $this->load->model('act_model');
        $this->load->model('funciones_model');
        $this->load->model('reporte_model');
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->library('session');
        $this->load->library('encrypt');
    }

    /** Metodo que direcciona a los comentarios de la actividad pasada por parametro
     * Se le pasa el nombre del proyecto  y de la actividad correspondiente.
     * 
     * @author Aileen Moreno
     * @param type $nombre Nombre de la pizarra
     * @param type $actividad ID de la actividad a comentar
     * @return mapping comentarActividad.php
     */
    public function goComentar_Actividad($nombre, $actividad) {

        $this->load->model('act_model');
        $nombre = $this->uri->segment(3);
        $actividad = $this->uri->segment(4);

        $data['proyecto'] = $nombre;
        $data['actividad'] = $actividad;
        $data['comentarios'] = $this->act_model->obtenerComentarios($nombre, $actividad);
        $this->load->view('comentarActividad', $data);
    }

    /** Metodo que redirecciona a la pagina de modificar la actividad 
     * que posee el id que es pasado como parametro.
     * 
     * @author Krysler Pinto
     * @return mapping crear_subactividad.php
     */
    public function goAgregar_SubActividad() {

        $data['proyecto'] = $this->uri->segment(3);
        $data['padre'] = $this->uri->segment(4);
        $data['encargados'] = $this->act_model->obtenerEncargados();
        $this->load->view('crear_subactividad', $data);
    }

    /**
     * Metodo que agrega una subactividad a la pizarra
     * 
     * @author Krysler Pinto
     */
    public function Add_SubActividad() {
        $this->load->helper('form');
        $name = $this->input->post('nombre');
        $desc = $this->input->post('descripcion');
        $padre = $this->uri->segment(4);
        $enca = $this->input->post('encargado');
        $fecha_ini = $this->input->post('fecha_inicio');
        $fecha_fin = $this->input->post('fecha_fin');
        $nombre_proyecto = $this->uri->segment(3);
        $chars = array("%", "2", "0");
        $replace = array("", "", " ");
        $proyecto = str_replace($chars, $replace, $nombre_proyecto);
        $usuario = $this->session->userdata('email');
        $this->reporte_model->usuarioAgregoActividad($usuario, $proyecto, $name, $enca);
        /* $done = */$this->act_model->agregarSubActividad($name, $desc, $padre, $enca, $fecha_ini, $fecha_fin, $proyecto);
        $this->act_model->progreso($proyecto);
        $this->funciones_model->goVerMiPizarra($proyecto);
    }
/**
 * Metodo que redirecciona a la pagina de modificar la actividad que posee
 * el id que es pasado como parametro
 * 
 * @author Leo Ramos
 * @param type $id ID de la actividad a modificar
 */
    public function goModificar_Actividad($id) {

        $data['actividad'] = $this->act_model->obtenerActividad($id);
        $data['encargados'] = $this->act_model->obtenerEncargados();
        $this->load->view('actividad_editar', $data);
    }

/** Metodo que modifica ciertos datos de una actividad, 
 *  excepto su id y el proyecto al cual pertenece
 * 
 * @author Leo Ramos
 */
    public function modificar_actividad() {
        $this->load->helper('form');

        $usuario = $this->session->userdata('email');
        $id = $this->input->post('id');
        $name = $this->input->post('nombre');
        $name_proy = $this->input->post('nombre_proyecto');
        $desc = $this->input->post('descripcion');
        $enca = $this->input->post('encargado');
        $fecha = $this->input->post('fecha_inicio');
        $status = $this->input->post('estatus');
        
        /* $done = */$this->act_model->modificarActividad($name, $desc, $enca, $fecha, $id, $status, $name_proy);
        $chars = array("%", "2", "0");
        $replace = array("", "", " ");
        $this->reporte_model->usuarioModificoActividad(str_replace($chars, $replace, $name_proy), $usuario, $id);
        $this->funciones_model->goVerMiPizarra($name_proy);
    }

    /** Funcion que se encarga de comentar una actividad, obteniendo los datos 
     * del formulario y enviandosela al modelo.
     * 
     * @author Aileen Moreno
     * @return mapping comentarActividad.php
     */
    public function comentar() {

        $this->load->model('act_model');
        $this->load->helper('form');

        $nombre = $this->input->post('nombre_proyecto');
        $actividad = $this->input->post('nombre_actividad');
        $cuerpo = $this->input->post('cuerpo');
        $creador = $this->session->userdata('email');
        $fecha = date("Y-m-d");
        $datos = array(
            'nombre_proyecto' => $nombre,
            'id_actividad' => $actividad,
            'creador' => $creador,
            'titulo' => $this->input->post('titulo'),
            'cuerpo' => $cuerpo,
            'fecha' => $fecha
        );

        $this->act_model->comentarActividad($datos);
        $data['proyecto'] = $nombre;
        $data['actividad'] = $actividad;
        $data['comentarios'] = $this->act_model->obtenerComentarios(
                $nombre, $actividad);
        $this->reporte_model->usuarioComentoActividad(
                $nombre, $creador, $actividad, $cuerpo);
        $this->load->view('comentarActividad', $data);
    }

    /**
     * Metodo que culmina una actividad
     * 
     * @author Stephanie Alibrandi
     */
    function culminar() {

        $id = $this->uri->segment(4);
        $data['proyecto'] = $this->uri->segment(3);
        $colaborador = $this->session->userdata('email');
        $this->act_model->culminarActividad($id);
        $chars = array("%", "2", "0");
        $replace = array("", "", " ");
        $this->reporte_model->usuarioCulminoActividad(
                str_replace($chars, $replace, $data['proyecto']), $colaborador, $id);
        $data['actividades'] = $this->act_model->obtenerActividades(
                $data['proyecto'], $colaborador);
        $this->act_model->progreso($data['proyecto']);
        $this->funciones_model->goVerMiPizarra(str_replace($chars, $replace, $data['proyecto']));
    }

}

?>
